A common concept in computer programming is the execution of one or more instructions repetitively according to a given criterion. This repetitive execution can be accomplished by programming using recursion, fixed point iteration, or looping constructs. In various instances computer programs can include repetitions of processes in which at repetitive process may execute a certain number of times according to a criterion. For instance, if the repetitive process criterion directs the repetitive process to execute “n” number of times, the total number of executions of the repetitive process can be as great as “n” executions.
In some computer systems with multiple processors or multi-core processors, execution of processes can be run in parallel with each other on the multiple processors or cores. Such parallel execution of repetitive processes can improve the performance of the computer system. For example, in a computer system with four or more processors or processor cores, if the repetitive process criterion directs the repetitive process to execute n number of times, n can be split into p divisions, for example n0, n1, n2, . . . np. The p divisions of n can each represent a subset of the number of times to execute the repetitive process. The repetitive process can be assigned to execute on respective processors or processor cores for one of the subsets n0, n1, n2, . . . np.
However, in many computer systems, this does not alleviate an issue with the overall overhead involved in executing repetitive processes. In a task-based run-time system, a separate task can be created for each execution of the p divisions of each repetitive process. The greater the number of tasks, the greater an amount of overhead is created for managing all of the tasks.